Members
Overall Objectives
Research Program
Highlights of the Year
New Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Partnerships and Cooperations
Dissemination
Bibliography
XML PDF e-pub
PDF e-Pub


Section: New Software and Platforms

NaoLAB

Figure 5. Overview of the proposed distributed architecture that allows fast development of interactive applications using the humanoid robot NAO.
IMG/functarchi3.png

Functional Description

NAOLab [27] is a middleware for the development of robotic applications in C, C++, Python and Matlab, using the humanoid robot NAO networked with a PC. NAOLab enables the joint use of NAO's on-board computing resources and external resources. More precisely, it allows the development of applications that combine embedded libraries, e.g. motion control, image/sound acquisition and transmission, etc., with external toolboxes, e.g. OpenCV, Matlab toolboxes, etc. The NAOLab toolbox has the following characteristic. The middleware complexity is transparent to the users. An user-friendly interface is provided through C++ and Python libraries extended with mex functions for Matlab. This enables the development of sophisticated audio and visual processing algorithms without the stringent constraints of the NAOqi SDK. NAOLab and NAOqi share the same modular approach, namely there are three categories of modules: vision, audio and motion. An interface (vision, audio, motion) is associated with each NAOqi module. Each interface deals with sensor-data access and actuator control. The role of these interfaces is twofold: (i) to feed the sensor data into a memory space that is subsequently shared with existing software or with software under development, and (ii) to send to the robot commands generated by the external modules.